
#ifndef ___LOGGGER_THREADSAFE___
#define ___LOGGGER_THREADSAFE___

#include "LoggerImp.h"
#include <boost/thread/recursive_mutex.hpp>

namespace woe
{
	//
	//	a thread-safe logger
	//
	class TUTIL_API LoggerThreadSafe : public LoggerImp
	{
	public:
		LoggerThreadSafe();
		virtual ~LoggerThreadSafe();

		//
		//	do log an event, and the log message will be tagged with a log level and log label
		//
		virtual void log(short lvl, short label, const string& strMsg);

	protected:
		boost::recursive_mutex	m_theMtx;
	};
}

#endif
